package design_pattern.observer;

/**
 * 观察者Observer，把被观察者Subject作为成员变量
 */
public abstract class Observer {

    protected Subject subject;

    /**
     * 在构造方法中subject作为参数初始化，并且把当前观察者加入subject的observers列表中
     */
    public Observer(Subject subject) {
        this.subject = subject;
        this.subject.attach(this);
    }

    /**
     * 当subject的状态发生改变时，调用update方法刷新observer中的监测值
     */
    public abstract void update();

}
